home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / PIL / DcxImagePlugin.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  2KB  |  55 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. __version__ = '0.2'
  5. import Image
  6. import ImageFile
  7. from PcxImagePlugin import PcxImageFile
  8. MAGIC = 987654321
  9.  
  10. def i32(c):
  11.     return ord(c[0]) + (ord(c[1]) << 8) + (ord(c[2]) << 16) + (ord(c[3]) << 24)
  12.  
  13.  
  14. def _accept(prefix):
  15.     return i32(prefix) == MAGIC
  16.  
  17.  
  18. class DcxImageFile(PcxImageFile):
  19.     format = 'DCX'
  20.     format_description = 'Intel DCX'
  21.     
  22.     def _open(self):
  23.         s = self.fp.read(4)
  24.         if i32(s) != MAGIC:
  25.             raise SyntaxError, 'not a DCX file'
  26.         
  27.         self._offset = []
  28.         for i in range(1024):
  29.             offset = i32(self.fp.read(4))
  30.             if not offset:
  31.                 break
  32.             
  33.             self._offset.append(offset)
  34.         
  35.         self._DcxImageFile__fp = self.fp
  36.         self.seek(0)
  37.  
  38.     
  39.     def seek(self, frame):
  40.         if frame >= len(self._offset):
  41.             raise EOFError('attempt to seek outside DCX directory')
  42.         
  43.         self.frame = frame
  44.         self.fp = self._DcxImageFile__fp
  45.         self.fp.seek(self._offset[frame])
  46.         PcxImageFile._open(self)
  47.  
  48.     
  49.     def tell(self):
  50.         return self.frame
  51.  
  52.  
  53. Image.register_open('DCX', DcxImageFile, _accept)
  54. Image.register_extension('DCX', '.dcx')
  55.